package com.ruoyi.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.system.domain.BdmOrderItem;
import com.ruoyi.system.domain.dto.BdmGoodDto;
import com.ruoyi.system.domain.vo.BdmOrderItemVo;
import com.ruoyi.system.domain.vo.applet.AppletOrderItemVo;
import com.ruoyi.system.domain.vo.applet.AppletRemainToBeEvaluated;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 订单项目Mapper接口
 * 
 * @author ruoyi
 * @date 2024-12-13
 */
public interface BdmOrderItemMapper  extends BaseMapper<BdmOrderItem>
{
    /**
     * 查询订单项目
     * 
     * @param id 订单项目主键
     * @return 订单项目
     */
    public BdmOrderItem selectBdmOrderItemById(Long id);

    /**
     * 搜索订单商品列表
     * @param orderIds
     * @return
     */
    List<AppletOrderItemVo> selectBdmOrderItemByIds(List<String> orderIds);

    /**
     * 查询订单项目列表
     * 
     * @param bdmOrderItem 订单项目
     * @return 订单项目集合
     */
    public List<BdmOrderItem> selectBdmOrderItemList(BdmOrderItem bdmOrderItem);

    /**
     * 新增订单项目
     * 
     * @param bdmOrderItem 订单项目
     * @return 结果
     */
    public int insertBdmOrderItem(BdmOrderItem bdmOrderItem);

    /**
     * 修改订单项目
     * 
     * @param bdmOrderItem 订单项目
     * @return 结果
     */
    public int updateBdmOrderItem(BdmOrderItem bdmOrderItem);

    /**
     * 删除订单项目
     * 
     * @param id 订单项目主键
     * @return 结果
     */
    public int deleteBdmOrderItemById(Long id);

    /**
     * 批量删除订单项目
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBdmOrderItemByIds(Long[] ids);

    /**
     * 查询 云库存商品
     */
    List<BdmGoodDto> selectGoodItemList(@Param("orderItemIds") List<Long> orderItemIds);

    /**
     * 查询未评价订单项
     */
    List<AppletRemainToBeEvaluated> remainToBeEvaluated(@Param("userId")Long userId);

    List<BdmOrderItemVo> getBdmOrderItems(@Param("orderId")String orderId);
}
